#ifndef EVENT_H
#define EVENT_H

#include <boost/noncopyable.hpp>

class Event :
        protected boost::noncopyable
{
public:
    enum Type
    {
        ET_INVALID = 0,

        ET_NET_READCOMPLETE = 1,
        ET_NET_WRITECOMPLETE = 2,
        ET_NET_CONNECT = 3,
        ET_NET_DISCONNECT = 4,
        ET_NET_SVRSTOP = 5,

        ET_TIMER = 6,

        ET_QUIT = 7
    };

public:
    Event(Type type);
    virtual ~Event();

    Type type() const;

protected:
    Type m_type;
};

#endif // EVENT_H
